using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Sys;
using net_work.Data.Entity.Sys;
using net_work.Data.VO.Sys;

namespace net_work.IService.Sys;

public interface ICollegeService
{
    /// <summary>
    /// 分页查询学院
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<CollegeResult>> GetCollegesPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据学院ID查询学院信息
    /// </summary>
    /// <param name="collegeId">学院ID</param>
    /// <returns>学院信息</returns>
    Task<College?> SelectByIdAsync(long collegeId);

    /// <summary>
    /// 插入学院
    /// </summary>
    /// <param name="collegeAddRequest">新增学院实体</param>
    /// <returns>新增学院ID</returns>
    Task<long> InsertCollege(CollegeAddRequest collegeAddRequest);

    /// <summary>
    /// 更新学院信息
    /// </summary>
    /// <param name="collegeUpdateRequest">更新学院信息</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateCollege(CollegeUpdateRequest collegeUpdateRequest);

    /// <summary>
    /// 删除学院
    /// </summary>
    /// <param name="ids">学院ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteCollegeByIds(List<long> ids);
}